package ar.com.vates.entradaSalida.ejercicio1;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

public class Adivinador {
	private int numero;
	private Integer cantidadIntentos;
	private final static int MAX=5;
	private static Integer nroJuego = 0;
	
	
	public Adivinador(){
		System.out.println("NUEVO JUEGO");
		nroJuego++;
		Random aleatorio = new Random();
		numero = aleatorio.nextInt(MAX);
		cantidadIntentos =0;
	}
	
	
	public boolean adivino(int num){
		cantidadIntentos++;
		if(this.numero == num)
			return true;
		else			
			return false;
				
	}
	
	public boolean compararHistorial(){
		FileReader archivo;
		BufferedReader buffArchivo;
		File txt = new File("E:\\record.txt");
		String linea=null;
		try{
			archivo = new FileReader(txt);
			buffArchivo= new BufferedReader(archivo);
			
			try {
				
				while(buffArchivo.readLine()!=null){
					linea=buffArchivo.readLine();			
				}
				
				
				if(linea==null)
					return true;
				String[] cantInt = linea.split(" ");
				int cantIntentos = Integer.parseInt(cantInt[cantInt.length-1]);
				System.out.println(cantIntentos);
				if(cantIntentos>this.cantidadIntentos)
				{
					System.out.println("Ha mejorado su record anterior. Felicitaciones");
					return true;
				}
				else
					return false;
				
				
			}			
			finally{
				buffArchivo.close();
			}
		}catch(IOException e){
			e.getMessage();
		}
		return false;		
		
		
	}
	public Adivinador reiniciar()
	{		
		return new Adivinador();		
	}
	public void guardar(){
		FileWriter archivo;
		BufferedWriter buffArchivo;
		File txt = new File("E:\\record.txt");
		
		try{
			archivo = new FileWriter(txt,true);
			buffArchivo= new BufferedWriter(archivo);

			try {
				
				buffArchivo.write("Juego " + nroJuego.toString() + ": " + cantidadIntentos.toString());
				buffArchivo.newLine();
			}			
			finally{
				buffArchivo.close();
			}
		}catch(IOException e){
			e.getMessage();
		}		
	}
}
